這個專案會採用Ollama實現簡易的AI,由於我們使用的是很基礎的模型,所以比不上ChatGPT、Copilot,可能產生文不對題的內容是很正常的,目的讓大家學習如何使用Spring AI。
在2024年,不懂得使用AI的人就落伍了。
去菜市場買菜,都會聽見大媽在聊AI。
坐捷運時,還可以聽到小學生大談自己手機的AI功能有多厲害。
今天,我想來點AI專案,我們會使用被別人訓練好的AI模型。
AI 的發展就像一場軍備競賽,不僅需要投入大量資金購買 GPU,還需要花費大量時間來訓練 AI 模型。
我們普通人很難從零開始打造自有的AI語言模型,但是我們可以站在巨人的肩膀上,使用這些企業已經訓練好的模型。
這個專案會串接Ollama,來完成AI聊天和辨識圖片內容的功能。
最初,我也曾考慮過使用ChatGPT,不過它的API需要付費才能使用,我認為這可能會一些初學者不太好,因此採用免付費的Ollama。
Ollama需要有8G以上的RAM,因為它是使用我們自己電腦的資源運作的。
來這裡https://ollama.com/download下載並安裝Ollama,完成後打開命令提示字元輸入
ollama run llava:7b
按下Enter後,會開始下載訓練好的模型(4.7GB),等待完成就能開始和AI聊天了,可以輸入中文或英文,AI會做出回答。
接下來要在Spring專案串接Ollama,打開Spring Initializr。
按照下圖的設定建立專案
開啟專案,修改application.properties添加Ollama相關的設定,base-url是Ollama API的位置,model是我們使用的模型名稱。
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.model=llava:7b
新增Controller/OllamaController.java,導入Ollama來完成AI聊天功能和辨識圖片的功能。
@RestController
public class OllamaController {
//導入Ollama
private final OllamaChatModel ollamaChatModel;
public OllamaController(OllamaChatModel ollamaChatModel) {
this.ollamaChatModel = ollamaChatModel;
}
//問Ollama問題,顯示AI模型的回答
@RequestMapping("/ai")
public String ollama(@RequestParam(value = "message") String message) {
return ollamaChatModel.call(message);
}
}
https://mega.nz/file/0A9xSYiD#d9M2tDUrOk0VAolxk__34VVDnucXbFNuZjnatHcDjAE
現在啟動專案,我們先測試AI問答的功能。
message=後面的就是我們傳送給AI的聊天內容。
在Response Body可以看到AI回答的內容。
接下來嘗試AI辨識圖片內容的功能
這次需要等待比較久才能看到回答,AI會用英文回答這是一張足球的圖片。
除了這些,它還會寫程式
寫到一半的程式,也可以交給它。
我們採用常見的Two Sum,因為URL不能使用<>{}[],所以把這些字元去除。